
// 虚拟内存区域 (virtual memory area， 简称 vma)
struct vm_area_struct {
    // 虚拟内存区域起始虚拟地址（包含）
    unsigned long vm_start;
    // 虚拟内存区域结束虚拟地址（不包含）
    // 即区域范围为 [vm_start, vm_end)
    unsigned long vm_end;

    // 访问权限与属性标识
    /*
    描述 VMA 的访问权限和属性的标志位（关键标志如下）：
        VM_READ：允许读操作
        VM_WRITE：允许写操作
        VM_EXEC：允许执行操作
        VM_SHARED：该区域可被多个进程共享（如共享库）
        VM_ANON：匿名映射（无关联文件，如堆、栈）
        VM_STACK：标记为用户栈区域
    */
    unsigned long vm_flags;

    // 用于将 VMA 链接成双向链表的指针
    struct vm_area_struct *vm_next, *vm_prev;

    // 文件索引结点
    struct inode *i_node;
    // 文件偏移量
    long offset;

};

